Albor oAuth
Albor
El flujo de oauth comienza con:
GET /auth/albor
Es un endpoint exclusivo para extensiones.
Respuesta:
{
"authorization_url": "https://alboragrolab.fusionauth.io/oauth2/...."
}
Se deberá redirigir al usuario (en una pestaña nueva) a esa URL.
EL usuario ingresa credenciales en Albor y redirigirá al usuario a:
GET /auth/albor/callback
incluyendo en la queryString los códigos de respuesta.
El back obtendrá las credenciales y le servirá al usuario un html indicando si salió todo bien o no.
Esos archivos están en features/oauth/html.
Al mismo tiempo que el back sirve el archivo, envía una notificación por SSE al canal del usuario-extensión.
El evento es el EXT_ONLINE_EVENT.V1 y el canal es EXT.V1.
Según el resultado, el payload del mensaje será:
- Flujo finalizado correctamente:
{
"event_name": "EXT_ONLINE_EVENT.V1",
"event_payload": {
"client_id": "b12b3d65-359b-463a-9dd8-6f8ed743918d",
"user_id": "UID-308a48825add54c020b766ca3678973b",
"data": {
"code": "ALBOR_OAUTH_SUCCEEDED",
"access_token": "..."
}
},
"event_msg": ""
}
- Error en el flujo:
{
"event_name": "EXT_ONLINE_EVENT.V1",
"event_payload": {
"client_id": "b12b3d65-359b-463a-9dd8-6f8ed743918d",
"user_id": "UID-308a48825add54c020b766ca3678973b",
"data": {
"code": "ALBOR_OAUTH_FAILED"
}
},
"event_msg": ""
}
Se podrán obtener las credenciales mediante el siguiente endpoint:
GET /auth/albor/token
Es un endpoint exclusivo para extensiones.
Respuesta:
{
"data": {
"access_token": "...."
}
}
En caso de no haber credenciales, el endpoint responderá con un http status code 404.